/**
@file
	KernelLoader.h
@brief

@author
	GengYong
@revision
	2005/11/05 * Created by GengYong.
*/


#ifndef SAF_HEADER_FILE_KERNELLOADER_H
#define SAF_HEADER_FILE_KERNELLOADER_H

#include "../include/KernelExport.h"

#define ENABLE_PROXY_SELF_NOTIFY_START_CHANGE

namespace SAF
{
	class KernelLoader
	{
	public:
		// The Max Catalog ID
		enum { MAXCATALOG = 65535 };
	private:		
		KernelLoader();
	   ~KernelLoader();
		KernelLoader(const KernelLoader&):m_kernel(0){ return ;}
		KernelLoader& operator=(const KernelLoader&) { return *this; }
	public:
		static KernelLoader& Instance()
		{
			static KernelLoader instance;
			return instance;
		}
	public:
		bool LoadFromFile(const char * filename);
	public:
		const IKernel * Kernel() const { return m_kernel;}	
	private:
		IKernel * m_kernel;
	};
}

#endif	//#ifndef SAF_HEADER_FILE_KERNELLOADER_H

